Pro-active trajectory tracking control for automated driving during elevation transitions

ABSTRACT

In exemplary embodiments, methods, systems, and vehicles are provided that include: one or more sensors disposed onboard a vehicle and configured to at least facilitate obtaining sensor data for the vehicle; one or more location systems configured to at least facilitate obtaining location data pertaining to a location of the vehicle; a computer memory configured to store map data pertaining to a path corresponding to the location; and a processor disposed onboard the vehicle and configured to at least facilitate: generating an elevation profile along the path using the sensor data and the map data; and providing instructions for controlling the vehicle using the elevation profile.

INTRODUCTION

The technical field generally relates to vehicles and, morespecifically, to methods and systems for controlling vehicles duringroad elevation transitions.

Certain vehicles today include systems for controlling the vehicle basedon estimating a road bank and grade angles for a roadway on which thevehicle is traveling. However, such existing vehicle systems generallyinclude a single point estimate for the vehicle at a particle point intime and position in which the vehicle is located, and such existingvehicle systems may not provide optimal estimates in certain situationswhich results in sub-optimal controls performance.

Accordingly, it is desirable to provide improved methods and systems forcontrolling vehicles during road elevation transitions.

SUMMARY

In accordance with an exemplary embodiment, a method is provided thatincludes: obtaining sensor data from one or more sensors onboard avehicle; obtaining location data pertaining to a location of thevehicle; obtaining map data pertaining to a path corresponding to thelocation; generating, using a processor, an elevation profile along thepath using the sensor data and the map data; and proactively controllingthe vehicle, based on instructions provided by the processor, using thepredicted elevation profile.

Also in an exemplary embodiment, the method further includes: receivinguser inputs as to a destination of travel for the vehicle; andgenerating a planned mission for travel to the destination along aroadway associated with the path, based on the user inputs and thelocation data; wherein the step of generating the elevation profileincludes generating a road elevation profile over a receding predictionhorizon for the roadway in accordance with the planned mission, via theprocessor, using the sensor data and the map data; and wherein the stepof controlling the vehicle includes controlling the vehicle, based onthe instructions provided by the processor, using the predictive roadelevation profile over the receding prediction horizon.

Also in an exemplary embodiment, the road elevation profile includes aprofile of bank angles and grade angles for the roadway along with thereceding prediction horizon.

Also in an exemplary embodiment, the road elevation profile is generatedby the processor based on camera data as well as lane level map data forthe roadway.

Also in an exemplary embodiment, the method further includes performing,via the processor, a transformation of the elevation profile from roadcoordinates to vehicle coordinates, generating a transformed elevationprofile.

Also in an exemplary embodiment, the step of controlling the vehicleincludes controlling lateral dynamics of the vehicle, via instructionsprovided by the processor, based on the transformed elevation profile.

Also in an exemplary embodiment, the step of controlling the vehicleincludes controlling longitudinal dynamics of the vehicle, viainstructions provided by the processor, based on the transformedelevation profile.

In another exemplary embodiment, a system is provided that includes: oneor more sensors configured to at least facilitate obtaining dynamicmeasurements and path information for a vehicle; one or more locationsystems configured to at least facilitate obtaining location datapertaining to a location of the vehicle; a computer memory configured tostore map data pertaining to a path corresponding to the location; and aprocessor configured to at least facilitate: generating an elevationprofile along the path using the sensor data and the map data; andproviding instructions for controlling the vehicle using the elevationprofile.

Also in an exemplary embodiment, the one or more sensors are configuredto at least facilitate receiving user inputs as to a destination oftravel for the vehicle; and the processor is configured to at leastfacilitate: generating a planned mission for travel to the destinationalong a roadway associated with the path, based on the user inputs andthe location data; generating a road elevation profile over a recedingprediction horizon for the roadway in accordance with the plannedmission using the sensor data and the map data; and providinginstructions for control of the vehicle using the road elevation profileover the receding prediction horizon.

Also in an exemplary embodiment, the road elevation profile includes aprofile of bank angles and grade angles for the roadway along with thereceding prediction horizon.

Also in an exemplary embodiment, the processor is configured to at leastfacilitate generating the road elevation profile based on camera data aswell as lane level map data for the roadway.

Also in an exemplary embodiment, wherein the processor is configured toat least facilitate performing a transformation of the elevation profilefrom road coordinates to vehicle coordinates, generating a transformedelevation profile.

Also in an exemplary embodiment, the processor is further configured toat least facilitate controlling lateral movement of the vehicle based onthe transformed elevation profile.

Also in an exemplary embodiment, the processor is further configured toat least facilitate controlling longitudinal movement of the vehiclebased on the transformed elevation profile.

In another exemplary embodiment, a vehicle is provided that includes: abody; a propulsion system configured to generate movement of the body;one or more sensors disposed onboard the vehicle and configured to atleast facilitate obtaining sensor data for the vehicle; one or morelocation systems configured to at least facilitate obtaining locationdata pertaining to a location of the vehicle; a computer memoryconfigured to store map data pertaining to a path corresponding to thelocation; and a processor disposed onboard the vehicle and configured toat least facilitate: generating an elevation profile along the pathusing the sensor data and the map data; and providing instructions forcontrolling the vehicle using the elevation profile.

Also in an exemplary embodiment, the one or more sensors are configuredto at least facilitate receiving user inputs as to a destination oftravel for the vehicle; and the processor is configured to at leastfacilitate: generating a planned mission for travel to the destinationalong a roadway associated with the path, based on the user inputs andthe location data; generating a road elevation profile over a recedingprediction horizon for the roadway in accordance with the plannedmission using the sensor data and the map data; and providinginstructions for control of the vehicle using the road elevation profileover the receding prediction horizon.

Also in an exemplary embodiment, the road elevation profile includes aprofile of bank angles and grade angles for the roadway along with thereceding prediction horizon.

Also in an exemplary embodiment, the processor is configured to at leastfacilitate generating the road elevation profile based on camera data aswell as lane level map data for the roadway.

Also in an exemplary embodiment, the processor is configured to at leastfacilitate performing a transformation of the elevation profile fromroad coordinates to vehicle coordinates, generating a transformedelevation profile.

Also in an exemplary embodiment, the processor is further configured toat least facilitate controlling lateral movement and longitudinalmovement of the vehicle based on the transformed elevation profile.

DESCRIPTION OF THE DRAWINGS

The present disclosure will hereinafter be described in conjunction withthe following drawing figures, wherein like numerals denote likeelements, and wherein:

FIG. 1 is a functional block diagram of a vehicle that includes acontrol system for controlling a vehicle with respect to road elevationtransitions, in accordance with exemplary embodiments;

FIG. 2 is a block diagram of modules of the control system of FIG. 1, inaccordance with exemplary embodiments;

FIG. 3 is a flowchart of a process for controlling a vehicle withrespect to road elevation transitions, and that can be implemented inconnection with the vehicle of FIG. 1 and the control system of FIGS. 1and 2, in accordance with exemplary embodiments; and

FIGS. 4-9 illustrate certain implementations of the process of FIG. 3,in accordance with exemplary embodiments.

DETAILED DESCRIPTION

The following detailed description is merely exemplary in nature and isnot intended to limit the disclosure or the application and usesthereof. Furthermore, there is no intention to be bound by any theorypresented in the preceding background or the following detaileddescription.

FIG. 1 illustrates a vehicle 100, according to an exemplary embodiment.As described in greater detail further below, the vehicle 100 includes acontrol system 102 for controlling the vehicle 100 with respect to roadelevation transitions utilizing proactive model control with apredictive time horizon using sensor, location, and map data, inaccordance with an exemplary embodiment.

In various embodiments, the vehicle 100 includes an automobile. Thevehicle 100 may be any one of a number of different types ofautomobiles, such as, for example, a sedan, a wagon, a truck, or a sportutility vehicle (SUV), and may be two-wheel drive (2WD) (i.e.,rear-wheel drive or front-wheel drive), four-wheel drive (4WD) orall-wheel drive (AWD), and/or various other types of vehicles in certainembodiments. In certain embodiments, the vehicle 100 may also comprise amotorcycle or other vehicle, such as aircraft, spacecraft, watercraft,and so on, and/or one or more other types of mobile platforms (e.g., arobot and/or other mobile platform).

The vehicle 100 includes a body 104 that is arranged on a chassis 116.The body 104 substantially encloses other components of the vehicle 100.The body 104 and the chassis 116 may jointly form a frame. The vehicle100 also includes a plurality of wheels 112. The wheels 112 are eachrotationally coupled to the chassis 116 near a respective corner of thebody 104 to facilitate movement of the vehicle 100. In one embodiment,the vehicle 100 includes four wheels 112, although this may vary inother embodiments (for example for trucks and certain other vehicles).

A drive system 110 is mounted on the chassis 116, and drives the wheels112, for example via axles 114. The drive system 110 preferablycomprises a propulsion system. In certain exemplary embodiments, thedrive system 110 comprises an internal combustion engine and/or anelectric motor/generator, coupled with a transmission thereof. Incertain embodiments, the drive system 110 may vary, and/or two or moredrive systems 112 may be used. By way of example, the vehicle 100 mayalso incorporate any one of, or combination of, a number of differenttypes of propulsion systems, such as, for example, a gasoline or dieselfueled combustion engine, a “flex fuel vehicle” (FFV) engine (i.e.,using a mixture of gasoline and alcohol), a gaseous compound (e.g.,hydrogen and/or natural gas) fueled engine, a combustion/electric motorhybrid engine, and an electric motor.

As depicted in FIG. 1, the vehicle also includes a braking system 106and a steering system 108 in various embodiments. In exemplaryembodiments, the braking system 106 controls braking of the vehicle 100using braking components that are controlled via inputs provided by adriver (e.g., via a braking pedal in certain embodiments) and/orautomatically via the control system 102. Also in exemplary embodiments,the steering system 108 controls steering of the vehicle 100 viasteering components (e.g., a steering column coupled to the axles 114and/or the wheels 112) that are controlled via inputs provided by adriver (e.g., via a steering wheel in certain embodiments) and/orautomatically via the control system 102.

In the embodiment depicted in FIG. 1, the control system 102 is coupledto the braking system 106, the steering system 108, and the drive system110. Also as depicted in FIG. 1, in various embodiments, the controlsystem 102 includes a sensor array 120, location system 130, and acontroller 140.

In various embodiments, the sensor array 120 includes various sensorsthat obtain sensor data for use in tracking road elevation andcontrolling the vehicle 10 based on the road elevation. In the depictedembodiment, the sensor array 120 includes inertial measurement sensors121, input sensors 122 (e.g., brake pedal sensors measuring brake inputsprovided by a driver and/or touch screen sensors and/or other inputsensors configured to received inputs from a driver or other user of thevehicle 10); steering sensors 123 (e.g., coupled to a steering wheeland/or wheels of the vehicle 10 and configured to measure a steeringangle thereof), torque sensors 124 (e.g., configured to measure a torqueof the vehicle), speed sensors 125 (e.g., wheel speed sensors and/orother sensors configured to measure a speed and/or velocity of thevehicle and/or data used to calculate such speed and/or velocity),cameras 126 (e.g., configured to obtain camera images of a roadway inwhich the vehicle is travelling).

Also in various embodiments, the location system 130 is configured toobtain and/or generate data as to a position and/or location in whichthe vehicle is located and/or is travelling. In certain embodiments, thelocation system 130 comprises and/or or is coupled to a satellite-basednetwork and/or system, such as a global positioning system (GPS) and/orother satellite-based system.

In various embodiments, the controller 140 is coupled to the sensorarray 120 and the location system 130. Also in various embodiments, thecontroller 140 comprises a computer system (also referred to herein ascomputer system 14), and includes a processor 142, a memory 144, aninterface 146, a storage device 148, and a computer bus 150. In variousembodiments, the controller (or computer system) 140 controls vehicleoperation based on the road grade and bank, and during road elevationtransitions. In various embodiments, the controller 140 provides theseand other functions in accordance with the steps of the process of FIG.3 and the implementations of FIGS. 4-9.

In various embodiments, the controller 140 (and, in certain embodiments,the control system 102 itself) is disposed within the body 104 of thevehicle 100. In one embodiment, the control system 102 is mounted on thechassis 116. In certain embodiments, the controller 140 and/or controlsystem 102 and/or one or more components thereof may be disposed outsidethe body 104, for example on a remote server, in the cloud, or otherdevice where image processing is performed remotely.

It will be appreciated that the controller 140 may otherwise differ fromthe embodiment depicted in FIG. 1. For example, the controller 140 maybe coupled to or may otherwise utilize one or more remote computersystems and/or other control systems, for example as part of one or moreof the above-identified vehicle 100 devices and systems.

In the depicted embodiment, the computer system of the controller 140includes a processor 142, a memory 144, an interface 146, a storagedevice 148, and a bus 150. The processor 142 performs the computationand control functions of the controller 140, and may comprise any typeof processor or multiple processors, single integrated circuits such asa microprocessor, or any suitable number of integrated circuit devicesand/or circuit boards working in cooperation to accomplish the functionsof a processing unit. During operation, the processor 142 executes oneor more programs 152 contained within the memory 144 and, as such,controls the general operation of the controller 140 and the computersystem of the controller 140, generally in executing the processesdescribed herein, such as the process 300 discussed further below inconnection with FIG. 3, the implementations of FIGS. 4-9.

The memory 144 can be any type of suitable memory. For example, thememory 144 may include various types of dynamic random access memory(DRAM) such as SDRAM, the various types of static RAM (SRAM), and thevarious types of non-volatile memory (PROM, EPROM, and flash). Incertain examples, the memory 144 is located on and/or co-located on thesame computer chip as the processor 142. In the depicted embodiment, thememory 144 stores the above-referenced program 152 along with map data154 (e.g., from and/or used in connection with the location system 130)and one or more stored values 156 (e.g., including, in variousembodiments, road elevation data from upcoming road segments and/orother roadways and/or thresholds for making determinations and/orexercising vehicle control based on the road grade and/or bank).

The bus 150 serves to transmit programs, data, status and otherinformation or signals between the various components of the computersystem of the controller 140. The interface 146 allows communication tothe computer system of the controller 140, for example from a systemdriver and/or another computer system, and can be implemented using anysuitable method and apparatus. In one embodiment, the interface 146obtains the various data from the sensor array 120 and/or the locationsystem 130. The interface 146 can include one or more network interfacesto communicate with other systems or components. The interface 146 mayalso include one or more network interfaces to communicate withtechnicians, and/or one or more storage interfaces to connect to storageapparatuses, such as the storage device 148.

The storage device 148 can be any suitable type of storage apparatus,including various different types of direct access storage and/or othermemory devices. In one exemplary embodiment, the storage device 148comprises a program product from which memory 144 can receive a program152 that executes one or more embodiments of one or more processes ofthe present disclosure, such as the steps of the process 300 discussedfurther below in connection with FIG. 3, the implementations of FIGS.4-9. In another exemplary embodiment, the program product may bedirectly stored in and/or otherwise accessed by the memory 144 and/or adisk (e.g., disk 157), such as that referenced below.

The bus 150 can be any suitable physical or logical means of connectingcomputer systems and components. This includes, but is not limited to,direct hard-wired connections, fiber optics, infrared and wireless bustechnologies. During operation, the program 152 is stored in the memory144 and executed by the processor 142.

It will be appreciated that while this exemplary embodiment is describedin the context of a fully functioning computer system, those skilled inthe art will recognize that the mechanisms of the present disclosure arecapable of being distributed as a program product with one or more typesof non-transitory computer-readable signal bearing media used to storethe program and the instructions thereof and carry out the distributionthereof, such as a non-transitory computer readable medium bearing theprogram and containing computer instructions stored therein for causinga computer processor (such as the processor 142) to perform and executethe program. Such a program product may take a variety of forms, and thepresent disclosure applies equally regardless of the particular type ofcomputer-readable signal bearing media used to carry out thedistribution. Examples of signal bearing media include: recordable mediasuch as floppy disks, hard drives, memory cards and optical disks, andtransmission media such as digital and analog communication links. Itwill be appreciated that cloud-based storage and/or other techniques mayalso be utilized in certain embodiments. It will similarly beappreciated that the computer system of the controller 140 may alsootherwise differ from the embodiment depicted in FIG. 1, for example inthat the computer system of the controller 140 may be coupled to or mayotherwise utilize one or more remote computer systems and/or othercontrol systems.

FIG. 2 provides a functional block diagram for modules of the controlsystem 102 of FIG. 1, in accordance with exemplary embodiments. Asdepicted in FIG. 2, in various embodiments, the control system 102includes the location system 130 (e.g., GPS) of FIG. 1, inertialmeasurement sensors 121 and cameras 126 of FIG. 1, and map data 154 ofFIG. 1 (e.g., stored in the memory 144 of FIG. 1).

As depicted in FIG. 1, in various embodiments, the data from thelocation system 130 (e.g., GPS), inertial measurement sensors 121,cameras 126, and map data 154 (and, in various embodiments, additionaldata, such as from additional sensors of the sensor array 120 of FIG. 1)are provided as inputs into an algorithm 202 for predicting a maneuverand transition for the vehicle at various points in time (t_(k),t_(k+1), . . . , t_(k+p)).

Also in various embodiments, the algorithm 202 utilizes a Bayesianfilter, in accordance with the following equation:

$\begin{matrix}{{{p\left( x_{k} \middle| z_{1:k} \right)} = \frac{{p\left( z_{k} \middle| x_{1} \right)}{p\left( x_{k} \middle| z_{1:{k - 1}} \right)}}{p\left( z_{k} \middle| z_{1:{k - 1}} \right)}},} & \left( {{Equation}\mspace{14mu} 1} \right)\end{matrix}$

in which p(x_(k)|z_(1:k)) is the probability distribution of the stateupdate based on the predicted state and measurements likelihoodcalculated based on Bayes estimator. Other estimation algorithms can beused for this purpose too.

Also in various embodiments, the algorithm 202 is executed via theprocessor 142 of FIG. 1, and generates a predicted disturbance 208 atthe various points in time, in accordance with the following equations:

$\begin{matrix}{\begin{matrix}\phi_{k} & \phi_{k + 1} & \phi_{k + 2} & \ldots & \phi_{k + p}\end{matrix},} & \left( {{Equation}\mspace{14mu} 2} \right) \\\begin{matrix}{\overset{.}{\psi}}_{{des}_{k}} & {\overset{.}{\psi}}_{{des}_{k + 1}} & {\overset{.}{\psi}}_{{des}_{k + 2}} & \ldots & {{\overset{.}{\psi}}_{{des}_{k + p}},}\end{matrix} & \left( {{Equation}\mspace{14mu} 3} \right) \\{\begin{matrix}\theta_{k} & \theta_{k + 1} & \theta_{k + 2} & \ldots & \theta_{k + p}\end{matrix},{and}} & \left( {{Equation}\mspace{14mu} 4} \right) \\\begin{matrix}a_{x_{{ref}_{k}}} & a_{x_{{ref}_{k + 1}}} & a_{x_{{ref}_{k + 2}}} & \ldots & a_{x_{{ref}_{k + p}}}\end{matrix} & \left( {{Equation}\mspace{14mu} 5} \right)\end{matrix}$

in which φ_(k) represents the road bank angle, θ_(k) represents the roadgrade angle, {dot over (ψ)}_(k) represents the desired yaw rate for thevehicle, and

a_(x_(ref_(k)))

is the desired longitudinal acceleration.

Also in various embodiments, a tracking error (e_(k)) 206 is generatedvia the processor 144 of FIG. 1. Tracking error is the differencebetween the desired vehicle trajectory and the vehicle trajectory.

As depicted in various embodiments, the predicted disturbance 208 andthe tracking error 206 are provided for model predictive control (MPC)for control of the vehicle 10 in a manner that compensates for the roadelevation disturbance over the prediction. In various embodiments, theprocessor 144 of FIG. 1 provides instructions for the model predictivecontrol using adaptive proactive control 212 for the vehicle (e.g., byproviding instructions for adjusting acceleration, braking, and/orsteering for the vehicle 10) along the receding horizon at various timepoints (t_(k), t_(k+1), . . . , t_(k+p)).

FIG. 3 is a flowchart of a process 300 for controlling a vehicle withrespect to road elevation transitions, in accordance with exemplaryembodiments. In various embodiments, the process 300 can be implementedin connection with the vehicle 100 of FIG. 1 and the control system 102of FIGS. 1 and 2. The process 300 of FIG. 3 will also be discussedfurther below in connection and FIGS. 4-9, which show differentimplementations of the process 300 in accordance with variousembodiments.

As depicted in FIG. 3, the process begins at step 301. In oneembodiment, the process 300 begins when a vehicle drive or ignitioncycle begins, for example when a driver approaches or enters the vehicle100, or when the driver turns on the vehicle and/or an ignition therefor(e.g. by turning a key, engaging a keyfob or start button, and so on).In one embodiment, the steps of the process 300 are performedcontinuously during operation of the vehicle.

User inputs are generated for the vehicle (step 302). In variousembodiments, the user inputs are obtained from a driver or other user ofthe vehicle 100 via inputs sensors 122 of FIG. 1. In variousembodiments, the user inputs include a destination of travel for thevehicle 100 for the current vehicle drive. In addition, in certainembodiments, the user inputs may also include one or more other userrequests pertaining to the vehicle drive, such as a preference as to aroute or type of route for the vehicle drive, an override of one or moreautomated features of the vehicle 100, and so on. In certainembodiments, the user inputs are inputted by the driver or other user ofthe vehicle 100 via one or more buttons, switches, knobs, touch screens,microphones, and/other devices of the vehicle 100, for example as partof the location system 130 of FIG. 1 (e.g., in certain embodiments, aspart of a navigation system and/or GPS system, or the like). In variousembodiments, the user inputs of step 302 is provided to the processor142 of FIG. 1 for processing, and for making determinations andimplementation the remaining steps of the process 300, for example asdescribed below.

Also in certain embodiments, additional sensor data is obtained (step304). In various embodiments, sensor data is obtained with respect tothe vehicle 100 and/or a roadway or path on which the vehicle 100 istravelling, via one or more inertial measurement sensors 121, steeringsensors 123, torque sensors 124, speed sensors 125, cameras 126, and/orother sensors of the sensor array 120 of FIG. 1. In various embodiments,the sensor data of step 304 is provided to the processor 142 of FIG. 1for processing, and for making determinations and implementation theremaining steps of the process 300, for example as described below.

Location data is obtained for the vehicle (step 306). In variousembodiments, location data is obtained via the location system 130 ofFIG. 1 (e.g., a GPS system) pertaining to a location of the vehicle 100.In certain embodiments, such location information is obtained usinginformation from one or more satellites, and includes longitudinal andlatitudinal coordinates for the vehicle 100. In various embodiments, thelocation data of step 306 is provided to the processor 142 of FIG. 1 forprocessing, and for making determinations and implementation theremaining steps of the process 300, for example as described below.

Map data is also obtained for the vehicle drive (step 308). In variousembodiments, lane level map data is obtained for the roadway or path onwhich the vehicle 100 is travelling. In various embodiments, the mapdata is retrieved from one or more map data 154 stored in the memory 144of FIG. 1 corresponding to the lane and roadway or path on which thevehicle 100 is travelling, based on the location data of step 306.

Camera data is obtained (step 310). In various embodiments, camera datais obtained for the roadway or path on which the vehicle 100 istravelling, and includes information as to the road grade and bankangles of the roadway. In various embodiments, the camera data isobtained with respect to a current lane in which the vehicle 100 istravelling. In certain embodiments, the camera data is also obtainedwith respect to adjacent and/or other nearby lanes. In certainembodiments, the camera data, including information as to the road gradeand bank angles, is obtained from the map data of step 308 as well ascamera images obtained from the sensor data of step 304 in current andprior iterations of the process 300.

A mission is planned for the vehicle (step 312). In various embodiments,a mission (or path of travel) for the vehicle 100 is planned in order toreach the destination of the current vehicle drive in accordance withthe user inputs of step 302. In various embodiments, the mission isdetermined by the processor 142 of FIG. 1 to include the roadway(s) andlane(s) of travel within the roadway(s) in order to reach thedestination as selected by the user. In certain embodiments, thelocation data of step 306, the map data of step 308, and/or the cameradata of step 310 are also utilized by the processor 142 is selecting themission.

In addition, in various embodiments, a bank profile is generated (step314). In various embodiments, the bank profile is generated by theprocessor 142 of FIG. 1 with respect to the road and bank angles of theroadway or path along a receding prediction horizon of the roadway orpath associated with the mission of step 312. In various embodiments,the bank profile is generated in this manner using the map data of step308 and the camera data of step 310.

The generation of the bank profile of step 314 is described below inconnection with exemplary implementations depicted in FIGS. 4 and 5.

With reference to FIG. 4, the vehicle 100 is depicted travelling along aroadway 400 having a plurality of lanes, in accordance with exemplaryembodiments. In various embodiments, the vehicle 100 is travelling alonga path (or mission) corresponding to points 402 designated with a starin FIG. 4 that extend across multiple lanes of the roadway 400.

Also as depicted in FIG. 4, various bank and grade angle data points areobtained at different lanes and segments along the roadway 400 (e.g.,from the camera data and the map data). Specifically, in the illustratedembodiment, the bank and grade angle data points include: (i) first bankand grade angle data points 410 along a first lane of the of the roadway400 in which the vehicle 100 is currently (or initially) travelling;(ii) second bank and grade angle data points 411 corresponding to asecond lane of the roadway 400 (e.g., an immediately adjacent lane tothe lane of the roadway 400 in which the vehicle 100 is currentlytravelling); and (iii) third bank and grade angle data points 412 alonga third lane of the roadway 400 (e.g., a lane that is two lanes awayfrom the lane in which the vehicle 100 is currently travelling). Inaccordance with an exemplary embodiment, FIG. 4 depicts an exemplaryimplementation in which the vehicle 100 is executing (or about toexecute) a lane change maneuver across the three lanes of the roadway400.

With reference to FIG. 5, this exemplary implantation of FIG. 4 isillustrated with a close up view of the vehicle 100 as positioned on theroadway 400 of FIG. 1, in accordance with an exemplary embodiment. Asdepicted in FIG. 5, each point of travel 402 for the vehicle 100 includean associated road bank angle Φx 502 for the roadway 400. Also asdepicted in FIG. 5, in various embodiments: (i) each of the first datapoints 410 include an associated road bank angle Φ⁰x 510 for the firstlane of the roadway 400; (ii) each of the second data points 411 includean associated road bank angle Φ¹x 511 for the second lane of the roadway400; and (iii) each of the third data points 412 include an associatedroad bank angle Φ²x 512 for the third lane of the roadway 400.

Also as depicted in various embodiments, the road bank angle values aredetermined with respect to a coordinate system with an x-axis 520corresponding to a current direction of travel of the vehicle 100, and ay-axis 530 that is perpendicular thereto.

In addition, in various embodiments, the road bank angle is determinedin accordance with the following equations (in accordance with examplesof non-limiting models that illustrate exemplary mathematical functionsmay be used to implement the methodology disclosed in this submission):

$\begin{matrix}{{{y(x)} = {{d_{1}x} + {d_{2}x^{2}} + {d_{3}x^{3}} + {d_{4}x^{4}} + {d_{5}x^{5}}}},} & \left( {{Equation}\mspace{14mu} 6} \right) \\{{{y_{i}(x)} = {c_{0} + {c_{1}x} + {c_{2}x^{2}} + {c_{3}x^{3}}}},} & \left( {{Equation}\mspace{14mu} 7} \right) \\{{{\Phi_{i}(x)} = \left\lbrack {\Phi_{0}^{i},\ldots\mspace{14mu},\Phi_{j}^{i},\ldots\mspace{14mu},\Phi_{p}^{i}} \right\rbrack},} & \left( {{Equation}\mspace{14mu} 8} \right) \\{{{{For}\mspace{14mu} 0} \leq x_{k} \leq x_{p}},} & \left( {{Equation}\mspace{14mu} 9} \right) \\{{\underset{i}{argmin}\left( \sqrt{\left( {{y\left( x_{k} \right)} - {y_{i}\left( x_{k} \right)}} \right)^{2} + \left( {{y\left( x_{k} \right)} - {y_{i + 1}\left( x_{k} \right)}} \right)^{2}} \right)},{and}} & \left( {{Equation}\mspace{14mu} 10} \right) \\{{{\Phi\left( x_{k} \right)} = {{\frac{{\Phi_{i + 1}\left( x_{k} \right)} - {\Phi_{i}\left( x_{k} \right)}}{{y_{i + 1}\left( x_{k} \right)} - {y_{i}\left( x_{k} \right)}}\left( {{y\left( x_{k} \right)} - {y_{i}\left( x_{k} \right)}} \right)} + {\Phi_{i}\left( x_{k} \right)}}},} & \left( {{Equation}\mspace{14mu} 11} \right)\end{matrix}$

in which Φ represents the road bank angle, and y is the lateral offsetof the vehicle with respect to current position at look ahead distancex, c₀, . . . , c₃ are polynomial coefficients for center of the lane foreach lane i, d₁, . . . , d₅ are the polynomial coefficients for thedesired trajectory or planned mission profile to be determined overmultiple lanes.

Also in various embodiments, similar to the example of FIG. 5, eachpoint of travel 402 for the vehicle 100 similarly includes an associatedroad grade angle θ(x) 502 for the roadway 400. Also as depicted in FIG.5, in various embodiments: (i) each of the first data points 410 alsoinclude an associated road grade angle θ₀(x) for the first lane of theroadway 400; (ii) each of the second data points 411 include anassociated road grade angle θ₁(x) for the second lane of the roadway400; and (iii) each of the third data points 412 include an associatedroad grade angle θ₂(x) for the third lane of the roadway 400, which aredetermined by the processor 142 of FIG. 1 in a similar manner asdescribed above in connection with Equations 6-11 for the road bankangle φ).

With reference back to FIG. 3, in various embodiments, the bank profileis transformed (step 316). Specifically, in various embodiments, theprocessor 142 of FIG. 1 transforms the road bank and angle profile ofstep 314 from a road coordinate system to a vehicle coordinate system.The transformation of step 316 is described below in accordance with anexemplary implementation of FIG. 6.

With reference to FIG. 6, the vehicle 100 is depicted on the roadway 400having a road path 602. Also as depicted in FIG. 6, the vehicle 100travels along a desired path 604. Also shown in FIG. 6 is a desired yawangle e_(2d) 606 for the desired path 604 relative to the road path 602,in accordance with an exemplary embodiment.

With continued reference to FIG. 6, in various embodiments, thetransformation of step 316 comprises a rotation from the roadcoordinates (e.g., of the road path 602) to the desired path 604, inaccordance with the following equations:

φ=sin(e _(2d))Θ+cos(e _(2d))Φ  (Equation 12) and

θ=cos(e _(2d))Θ−sin(e _(2d))Φ  (Equation 13),

in which Φ represents the road bank angle, Θ represents the road gradeangle, and e_(2d) represents the desired yaw angle 606 of FIG. 6 for thedesired path 604 relative to the road path 602.

With reference back to FIG. 3, in various embodiments the transformedbank profile of steps 314 and 316 is utilized for controlling thevehicle, both for lateral control (step 318 and 320). In variousembodiments, the transformed bank profile is utilized by the processor142 of FIG. 1 to provide adjustments and/or control instructions tovarious vehicle components, such as the braking system 106, steeringsystem 108, and/or drive system 110 to adjust lateral and longitudinalcontrol of the vehicle 100 based on the projected bank angle and gradeangle over the receding prediction horizon of the roadway, for exampleto offer a potentially more smooth transition as the vehicle 100 travelsalong different portions of the roadway having variable road bank and/orroad grade angles.

First, during step 318, in an exemplary embodiment, lateral control ofthe vehicle 100 is adjusted using a lateral trajectory tracking model inconjunction with the following equations:

$\begin{matrix}{{\overset{.}{e} = {{Ae} + {B_{1}\delta} + {B_{2}{\overset{.}{\psi}}_{des}} + {B_{3}{\sin(\phi)}}}},} & \left( {{Equation}\mspace{14mu} 14} \right) \\{{e = {\left\lbrack {{y - y_{d}},{\overset{.}{y} - y_{d}},{\psi - \psi_{d}},{\overset{.}{\psi} - \psi_{d}}} \right\rbrack = \left\lbrack {e_{1},{\overset{.}{e}}_{1},e_{2},{\overset{.}{e}}_{2}} \right\rbrack^{T}}},} & \left( {{Equation}\mspace{14mu} 15} \right) \\{{{{A =}\;\quad}\mspace{211mu}\left\lbrack \begin{matrix}0 & 1 & 0 & 0 \\0 & {- \frac{{2C_{af}} + {2C_{ar}}}{{mV}_{x}}} & \frac{{2C_{af}} + {2C_{ar}}}{m} & \frac{{{- 2}C_{af}l_{f}} + {2C_{ar}l_{r}}}{{mV}_{x}} \\0 & 0 & 0 & 1 \\0 & {- \frac{{2C_{af}l_{f}} - {2C_{ar}l_{r}}}{I_{z}V_{x}}} & \frac{{2C_{af}l_{f}} - {2C_{ar}l_{r}}}{I_{z}} & {- \frac{{2C_{af}l^{f^{2}}} + {2C_{ar}l_{r}}}{I_{z}V_{x}}}\end{matrix} \right\rbrack},} & \left( {{Equation}\mspace{14mu} 16} \right) \\{{B_{1} = \begin{bmatrix}0 \\\frac{2C_{af}}{m} \\0 \\\frac{2C_{af}l_{f}}{I_{z}}\end{bmatrix}},} & \left( {{Equation}\mspace{14mu} 17} \right) \\{{B_{2} = \begin{bmatrix}0 \\{- \frac{{2C_{af}l_{f}} - {2C_{ar}l_{r}}}{{mV}_{x}}} \\0 \\{- \frac{{2C_{af}l^{f^{2}}} + {2C_{ar}l_{r}}}{I_{z}V_{x}}}\end{bmatrix}},} & \left( {{Equation}\mspace{14mu} 18} \right) \\{{B_{3} = \begin{bmatrix}0 \\{- g} \\0 \\0\end{bmatrix}},} & \left( {{Equation}\mspace{14mu} 19} \right) \\{{\overset{.}{e} = {{{Ae} + {B_{1}\delta} + \begin{bmatrix}0 \\{D\; 1} \\0 \\{D\; 2}\end{bmatrix}} = {{Ae} + {B\begin{bmatrix}{D\; 1} \\{D\; 2} \\\delta\end{bmatrix}}}}},} & \left( {{Equation}\mspace{14mu} 20} \right) \\{{B = \begin{bmatrix}0 & 0 & 0 \\1 & 0 & \frac{2C_{af}}{m} \\0 & 0 & 0 \\0 & 1 & \frac{2C_{af}l_{f}}{I_{z}}\end{bmatrix}},} & \left( {{Equation}\mspace{14mu} 21} \right) \\{{{D\; 1} = {{\left( {{- \frac{{2C_{af}l_{f}} - {2C_{ar}l_{f}}}{{mV}_{x}}} - V_{x}} \right){\overset{.}{\psi}}_{des}} - {g{\sin(\phi)}}}},} & \left( {{Equation}\mspace{14mu} 22} \right) \\{{{D\; 2} = {\left( {- \frac{{2C_{af}l^{f^{2}}} + {2C_{ar}l_{r}^{2}}}{I_{z}V_{x}}} \right){\overset{.}{\psi}}_{des}}},} & \left( {{Equation}\mspace{14mu} 23} \right) \\{{{\phi\left( x_{k} \right)} = \begin{bmatrix}\phi_{k} & \phi_{k + 1} & \phi_{k + 2} & \ldots & \phi_{k + p}\end{bmatrix}},{and}} & \left( {{Equation}\mspace{14mu} 24} \right) \\{{{{\overset{.}{\psi}}_{{des}_{h}}\left( x_{k} \right)} = \begin{bmatrix}{\overset{.}{\psi}}_{{de}s_{k}} & {\overset{.}{\psi}}_{{de}s_{k + 1}} & {\overset{.}{\psi}}_{{de}s_{k + 2}} & \ldots & {\overset{.}{\psi}}_{{de}s_{k + p}}\end{bmatrix}},} & \left( {{Equation}\mspace{14mu} 25} \right)\end{matrix}$

in which: (i) e₁ represents the lateral position error with respect tothe road; (ii) e₂ represents the yaw angle error with respect to road;(iii) δ represents the front wheel steering angle; (iv) {dot over(ψ)}_(k+i) represents the desired yaw rate point cloud over theprediction horizon considering curvature ({dot over(ψ)}_(k+1)=ρ_(k+i)V_(x)); and (v) φ_(k+i) represents the road bank anglepoint cloud over prediction horizon, and in which (i) the values of ψare represented in FIG. 7 and (ii) the values of φ are represented inFIG. 8 (in conjunction with the x-axis 520 and the y-axis 530 of FIG.5). C_(af), C_(ar) are front and rear cornering coefficients, m isvehicle mass, I_(z) is moment of inertia, l_(f), l_(r), are distance ofcenter of gravity to front and rear axles, respectively, and δ isvehicle road wheel angle.

With continued reference to step 318, in various embodiments the lateralcontrol is based on a processing of a number of inputs, including: (i)the desired trajectory Y(x)=f(x) from the mission/path planner; (ii)vehicle path curvature (ρ); (iii) vehicle velocity (v_(x), v_(y)); (iv)inertial measurement unit (IMU) data (a_(x), a_(y), ω_(z)); (v) driverapplied torque (τ_(driver)); (vi) steering angle (δ); (vii) enablement;(viii) driver override; (ix) safety critical ramp down request; (x)horizon bank angle φ; and (xi) horizon desired curvature φ. Also invarious embodiments, these various inputs (e.g., obtained via the sensorarray 120 of FIG. 1) are utilized by the processor 142 of FIG. 1 ingenerating a steering command for lateral control of the vehicle 100based on the following equations:

$\begin{matrix}{{\min\limits_{\delta_{0}\mspace{14mu}\ldots\mspace{14mu}\delta_{n}}{\sum_{t \geq 0}{g\left( {e,{\delta_{t}(e)}} \right)}}},} & \left( {{Equation}\mspace{14mu} 26} \right)\end{matrix}$

such that:

ė=Ae+B ₁δ_(t) +B ₂{dot over (ψ)}_(des) +B ₃sin(φ)+e ^(˜)  (Equation 27)and

a ₁ e+a ₂ δ≤c, ∀e{tilde over ( )}  (Equation 28),

wherein: (i) Ae +B₁δ_(t) is a model based compensation of errordynamics; (ii) B₂{dot over (ψ)}_(des) is a desired curvature impact onerror dynamics; (iii) B₃ sin (φ) is the effect of bank angle (iv),{tilde over (e)} represents uncertainties in the error dynamics (to beestimated and compensated), and (v) a₁e+a₂δ≤c, ∀{tilde over (e)}represents a constraint for uncertainty realization and robust controland performance, feel, comfort, and safety constraints.

In addition, during step 320, in an exemplary embodiment, longitudinalcontrol of the vehicle 100 is adjusted using a longitudinal trajectorytracking model for longitudinal compensation (via instructions providedby the processor 142 of FIG. 1) based on sensor data inputs provided bythe sensor array 120 of FIG. 1, in conjunction with the followingequations:

$\begin{matrix}{{{\overset{.}{e}}_{x} = {v_{x} - v_{x_{ref}}}},} & \left( {{Equation}\mspace{14mu} 29} \right) \\{{{\overset{.}{v}}_{x} = {{v_{y}\overset{.}{\psi}} + \frac{T_{B/E}}{mr} + {g\mspace{11mu}{\sin(\theta)}{\cos(\phi)}}}},} & \left( {{Equation}\mspace{14mu} 30} \right) \\{\begin{bmatrix}\overset{.}{e_{x}} \\\overset{.}{e_{x}} \\\overset{.}{a_{x_{actual}}}\end{bmatrix} = {{\begin{bmatrix}0 & 1 & 0 \\0 & 0 & 1 \\0 & 0 & {{- 2}\pi f}\end{bmatrix}\begin{bmatrix}e_{x} \\\overset{.}{e_{x}} \\a_{x_{actual}}\end{bmatrix}} + {\quad{{{\left\lbrack \begin{matrix}0 \\0 \\{2\pi f}\end{matrix} \right\rbrack\left\lbrack a_{x_{cmnd}} \right\rbrack} + {\begin{bmatrix}0 \\1 \\0\end{bmatrix}\left\lbrack {{- a_{x_{ref}}} + {g.{\cos(\phi)}.\theta}} \right\rbrack}},}}}} & \left( {{Equation}\mspace{14mu} 31} \right) \\{{\overset{.}{x} = {{- {Mx}} + {N_{1}a_{x_{cmnd}}} + {N_{2}\left( {{- a_{x_{ref}}} + {{g.C}o{s(\phi)}\theta}} \right)}}},} & \left( {{Equation}\mspace{14mu} 32} \right) \\{{x = \begin{bmatrix}\overset{.}{e_{x}} \\\overset{.}{e_{x}} \\\overset{.}{a_{x_{actual}}}\end{bmatrix}},} & \left( {{Equation}\mspace{14mu} 33} \right) \\{M = \begin{bmatrix}0 & 1 & 0 \\0 & 0 & 1 \\0 & 0 & {{- 2}\pi f}\end{bmatrix}} & \left( {{Equation}\mspace{14mu} 34} \right) \\{{N_{1} = \begin{bmatrix}0 \\0 \\{2\pi f}\end{bmatrix}},} & \left( {{Equation}\mspace{14mu} 35} \right) \\{{N_{2} = \begin{bmatrix}0 \\1 \\0\end{bmatrix}},} & \left( {{Equation}\mspace{14mu} 36} \right) \\{{{g\;{\theta\left( x_{k} \right)}} = {g\;{{\cos(\phi)}\begin{bmatrix}\theta_{k} & \theta_{k + 1} & \theta_{k + 2} & \ldots & \theta_{k + p}\end{bmatrix}}}},{and}} & \left( {{Equation}\mspace{14mu} 37} \right. \\{{{a_{x_{ref}}\left( x_{k} \right)} = \begin{bmatrix}a_{x_{{ref}_{k}}} & a_{x_{{ref}_{k + 1}}} & a_{x_{{ref}_{k + 2}}} & \ldots & a_{x_{{ref}_{k + p}}}\end{bmatrix}},} & \left( {{Equation}\mspace{14mu} 38} \right)\end{matrix}$

In which: (i) T_(B/E) represents traction/brake torque; (ii) a_(x)represents longitudinal acceleration; (ii) v_(x) represents longitudinalvelocity; (iii) v_(x) _(ref) represents desired longitudinal velocity;(iv) a_(x) _(ref) represents desired longitudinal acceleration; and (v)θ_(k+i) represents road grade angle point cloud over prediction horizon,and in which the values of the road grade angle θ are represented inFIG. 9. In various embodiments, acceleration and deceleration commandsfor longitudinal control of the vehicle can be generated similar toequations 26, 27 and 28.

In various embodiments, the method then terminates at step 322.

Accordingly, methods, systems, and vehicles are provided for controllingvehicles during road elevation transitions. In various embodiments,camera data and map data are utilized to generate a road grade angle androad bank angle profile along a receding prediction horizon along aroadway on which the vehicle is travelling. Also in various embodiments,a transformed version of the road grade angle and road bank angleprofile are utilized to exercise lateral and longitudinal control overthe vehicle, for example to help smooth transitions among sections ofroadway with different road grade and/or road bank angles.

It will be appreciated that the systems, vehicles, and methods may varyfrom those depicted in the Figures and described herein. For example,the vehicle 100 of FIG. 1, the control system 102 of FIGS. 1 and 2,and/or components thereof of FIGS. 1 and 2 may vary in differentembodiments. It will similarly be appreciated that the steps of theprocess 300 may differ from those depicted in FIG. 3, and/or thatvarious steps of the process 300 may occur concurrently and/or in adifferent order than that depicted in FIG. 3. It will similarly beappreciated that the various implementations of FIGS. 4-9 may alsodiffer in various embodiments.

While at least one exemplary embodiment has been presented in theforegoing detailed description, it should be appreciated that a vastnumber of variations exist. It should also be appreciated that theexemplary embodiment or exemplary embodiments are only examples, and arenot intended to limit the scope, applicability, or configuration of thedisclosure in any way. Rather, the foregoing detailed description willprovide those skilled in the art with a convenient road map forimplementing the exemplary embodiment or exemplary embodiments. Itshould be understood that various changes can be made in the functionand arrangement of elements without departing from the scope of thedisclosure as set forth in the appended claims and the legal equivalentsthereof

What is claimed is:
 1. A method comprising: obtaining sensor data fromone or more sensors onboard a vehicle; obtaining location datapertaining to a location of the vehicle; obtaining map data pertainingto a path corresponding to the location; generating, using a processor,an elevation profile along the path using the sensor data and the mapdata; and proactively controlling the vehicle, based on instructionsprovided by the processor, using the predicted elevation profile.
 2. Themethod of claim 1, further comprising: receiving user inputs as to adestination of travel for the vehicle; and generating a planned missionfor travel to the destination along a roadway associated with the path,based on the user inputs and the location data; wherein the step ofgenerating the elevation profile comprises generating a road elevationprofile over a receding prediction horizon for the roadway in accordancewith the planned mission, via the processor, using the sensor data andthe map data; and wherein the step of controlling the vehicle comprisescontrolling the vehicle, based on the instructions provided by theprocessor, using the predictive road elevation profile over the recedingprediction horizon.
 3. The method of claim 2, wherein the road elevationprofile comprises a profile of bank angles and grade angles for theroadway along with the receding prediction horizon.
 4. The method ofclaim 3, wherein the road elevation profile is generated by theprocessor based on camera data as well as lane level map data for theroadway.
 5. The method of claim 1, further comprising: performing, viathe processor, a transformation of the elevation profile from roadcoordinates to vehicle coordinates, generating a transformed elevationprofile.
 6. The method of claim 5, wherein the step of controlling thevehicle comprises: controlling lateral dynamics of the vehicle, viainstructions provided by the processor, based on the transformedelevation profile.
 7. The method of claim 5, wherein the step ofcontrolling the vehicle comprises: controlling longitudinal dynamics ofthe vehicle, via instructions provided by the processor, based on thetransformed elevation profile.
 8. A system comprising: one or moresensors configured to at least facilitate obtaining dynamic measurementsand path information for a vehicle; one or more location systemsconfigured to at least facilitate obtaining location data pertaining toa location of the vehicle; a computer memory configured to store mapdata pertaining to a path corresponding to the location; and a processorconfigured to at least facilitate: generating an elevation profile alongthe path using the sensor data and the map data; and providinginstructions for controlling the vehicle using the elevation profile. 9.The system of claim 8, wherein: the one or more sensors are configuredto at least facilitate receiving user inputs as to a destination oftravel for the vehicle; and the processor is configured to at leastfacilitate: generating a planned mission for travel to the destinationalong a roadway associated with the path, based on the user inputs andthe location data; generating a road elevation profile over a recedingprediction horizon for the roadway in accordance with the plannedmission using the sensor data and the map data; and providinginstructions for control of the vehicle using the road elevation profileover the receding prediction horizon.
 10. The system of claim 9, whereinthe road elevation profile comprises a profile of bank angles and gradeangles for the roadway along with the receding prediction horizon. 11.The system of claim 10, wherein the processor is configured to at leastfacilitate generating the road elevation profile based on camera data aswell as lane level map data for the roadway.
 12. The system of claim 8,wherein the processor is configured to at least facilitate performing atransformation of the elevation profile from road coordinates to vehiclecoordinates, generating a transformed elevation profile.
 13. The systemof claim 12, wherein the processor is further configured to at leastfacilitate controlling lateral movement of the vehicle based on thetransformed elevation profile.
 14. The system of claim 12, wherein theprocessor is further configured to at least facilitate controllinglongitudinal movement of the vehicle based on the transformed elevationprofile.
 15. A vehicle comprising: a body; a propulsion systemconfigured to generate movement of the body; one or more sensorsdisposed onboard the vehicle and configured to at least facilitateobtaining sensor data for the vehicle; one or more location systemsconfigured to at least facilitate obtaining location data pertaining toa location of the vehicle; a computer memory configured to store mapdata pertaining to a path corresponding to the location; and a processordisposed onboard the vehicle and configured to at least facilitate:generating an elevation profile along the path using the sensor data andthe map data; and providing instructions for controlling the vehicleusing the elevation profile.
 16. The vehicle of claim 15, wherein: theone or more sensors are configured to at least facilitate receiving userinputs as to a destination of travel for the vehicle; and the processoris configured to at least facilitate: generating a planned mission fortravel to the destination along a roadway associated with the path,based on the user inputs and the location data; generating a roadelevation profile over a receding prediction horizon for the roadway inaccordance with the planned mission using the sensor data and the mapdata; and providing instructions for control of the vehicle using theroad elevation profile over the receding prediction horizon.
 17. Thevehicle of claim 16, wherein the road elevation profile comprises aprofile of bank angles and grade angles for the roadway along with thereceding prediction horizon.
 18. The vehicle of claim 17, wherein theprocessor is configured to at least facilitate generating the roadelevation profile based on camera data as well as lane level map datafor the roadway.
 19. The vehicle of claim 15, wherein the processor isconfigured to at least facilitate performing a transformation of theelevation profile from road coordinates to vehicle coordinates,generating a transformed elevation profile.
 20. The vehicle of claim 19,wherein the processor is further configured to at least facilitatecontrolling lateral movement and longitudinal movement of the vehiclebased on the transformed elevation profile.